package com.xbongbong.paas.service;

import com.xbongbong.paas.pojo.dto.ImportPerformanceDTO;
import com.xbongbong.paas.pojo.dto.PerformanceDownloadDTO;
import com.xbongbong.paas.pojo.vo.ExcelTemplateVO;
import com.xbongbong.paas.pojo.vo.ImportPerformanceVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.pro.domain.entity.ChartEntity;
import org.apache.poi.ss.usermodel.Workbook;

/**
 * 业绩目标导入导出Service层
 * 对应几个相关的接口
 *
 * @author wufeng
 * @date 2018/9/21 14:45
 */
public interface PerformanceImportService {

    /**
     * 根据公司配置生成目标模板
     *
     * @param performanceDownloadDTO 参数
     * @return Workbook
     * @throws XbbException XbbException
     * @version performance-v1.0
     * @author cp.zhang
     * @date 2018年8月21日 下午2:04:54
     * @since performance-v1.0
     */
    ExcelTemplateVO getPerformanceTemplate(PerformanceDownloadDTO performanceDownloadDTO) throws XbbException;

    /**
     * 业绩目标错误数据存放Excel
     *
     * @param year       财年年份
     * @param startMonth 财年起始月
     * @param setEntity  指标实体
     * @return 错误Excel
     * @throws XbbException XbbException
     * @version performance-v1.0
     * @author cp.zhang
     * @date 2018年8月22日 下午1:38:36
     * @since performance-v1.0
     */
    Workbook getErrorPerformanceTemplate(Integer year, Integer startMonth, ChartEntity setEntity) throws XbbException;

    /**
     * 业绩目标导入错误数据excel下载
     *
     * @param baseDTO 下载参数
     * @return Workbook excel
     * @throws XbbException XbbException
     */
    Workbook performanceErrorDownLoad(BaseDTO baseDTO) throws XbbException;

    /**
     * 导入业绩目标
     *
     * @param importPerformanceDTO 业绩目标数据
     * @return ImportFormDataVO
     * @throws XbbException XbbException
     * @author GuoJun.HU
     * @date 2019/5/8 14:57
     * @since V1.0
     */
    ImportPerformanceVO importPerformanceData(ImportPerformanceDTO importPerformanceDTO) throws XbbException;
}
